package fr.umlv.android.caveAvin.sqlite;


import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import fr.umlv.android.caveAVin.beans.User;



public class UserBDD extends MyProjectBDD {
	

	private static final long serialVersionUID = 1L;
 
	private static final String TABLE_USER= "table_user";
	
	private static final String COL_ID_USER = "Id_user";
	
	private static final int NUM_COL_ID = 0;
	
	private static final String COL_LOGIN = "Login";
	
	private static final int NUM_COL_LOGIN = 1;
	
	private static final String COL_PASS = "PassWord";
	
	private static final int NUM_COL_PASS = 2;
	
	private static final String COL_MAIL = "Mail";
	
	private static final int NUM_COL_MAIL = 3;
	
	public UserBDD(Context context) {
		super(context);
	}

	public static long insertUser(User user){
		//Création d'un ContentValues (fonctionne comme une HashMap)
		ContentValues values = new ContentValues();
		//on lui ajoute une valeur associé à une clé (qui est le nom de la colonne dans laquelle on veut mettre la valeur)
		values.put(COL_LOGIN, user.getLogin());
		values.put(COL_PASS, user.getPassWord());
		values.put(COL_MAIL, user.getMail());
		//on insère l'objet dans la BDD via le ContentValues
		return bdd.insert(TABLE_USER, null, values);
	}
	
	public static User getUserWithLoginPass (String login, String pass) {
		Cursor c = bdd.query(TABLE_USER ,new String[] {COL_ID_USER, COL_LOGIN, COL_PASS, COL_MAIL}
		, COL_LOGIN + " LIKE \"" + login +"\" AND " + COL_PASS+ " LIKE \"" + pass +"\"", null, null, null, null);
		
		if (c == null || c.getCount() == 0 ) {
			return null;
		}
		return cursorToUser(c);
	}
	
	/**
	 * Cette méthode permet de convertir un cursor en un livre
	 */
	private static User cursorToUser(Cursor c){
		//si aucun élément n'a été retourné dans la requête, on renvoie null
		if (c.getCount() == 0)
			return null;
 
		//Sinon on se place sur le premier élément
		c.moveToFirst();
		//On créé un user
		User user = new User();
		//on lui affecte toutes les infos grâce aux infos contenues dans le Cursor
		user.setId(c.getInt(NUM_COL_ID));
		user.setLogin(c.getString(NUM_COL_LOGIN));
		user.setPassWord(c.getString(NUM_COL_PASS));
		user.setMail(c.getString(NUM_COL_MAIL));
		//On ferme le cursor
		c.close();
 
		//On retourne le user
		return user;
	}
 

}
